package com.yuw.action;

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.yuw.bean.AdminInfoBean;
import com.yuw.service.ILoginService;
import com.yuw.utils.MyUtils;

@Controller
public class LoginAction {

	// 依赖注入【反转控制】
	// 面向接口的编程
	@Resource
	private ILoginService loginS;// 按名称匹配进行注入

	/**
	 * 说明： 如果在springmvc框架中需要使用request、response对象时，直接在方法的参数中声明该参数即可有springmvc进行注入；
	 * HttpServletRequest request, HttpServletReponse response
	 */

	/**
	 * 文件上传处理，MultipartFile file_adminimg变量用于接收form表单提交的字节流对象，通过该对象在后台进行文件保存处理即可
	 * 
	 * @param file_adminimg
	 * @param adminB
	 * @return
	 */
	@RequestMapping("/AdminInfoAdd")
	public String addAdminInfo(HttpServletRequest request, @RequestParam("file_adminimg") MultipartFile file_adminimg,
			AdminInfoBean adminB) {
		// 调用service层进行登录业务逻辑处理
		System.out.println("文件上传之前：" + adminB);
		// 调用utils的方法，进行文件上传处理
		MyUtils.uploadFiles(request, adminB, "adminImgs", "amdinImg", file_adminimg);

		if (file_adminimg != null) {

			System.out.println("上传文件名：" + file_adminimg.getOriginalFilename());
		}

		System.out.println("文件上传之后：" + adminB);
		// 进行文件保存处理

		// 调用service层的业务逻辑处理
//		List<AdminInfoBean> lstAdmins = loginS.queryLoginInfo(adminB);
//		// 根据登录信息查询结果进行跳转处理
//		if (lstAdmins != null && lstAdmins.size() > 0) {
//			// 登录成功
//			return "main";
//
//		} else {
//			// 登录失败
//			return "../../index";
//		}

		// 返回值是view的映射路径
		// 注意：返回的路径是剔除前缀和后缀之后的内容：
		// 例如返回视图页面的路径是：/WEB-INF/pages/index.jsp，则只需要返回 logined即可
		return "adminInfoManager/admininfoAddDetail";
	}

	/**
	 * 文件上传处理，MultipartFile file_adminimg变量用于接收form表单提交的字节流对象，通过该对象在后台进行文件保存处理即可
	 * 可以使用数组用于接收多个同名name属性的文件对象
	 * 
	 * @param file_adminimg
	 * @param adminB
	 * @return
	 */
	@RequestMapping("/AdminInfoAdd2")
	public String addAdminInfo2(@RequestParam("file_adminimg") MultipartFile[] file_adminimgs, AdminInfoBean adminB) {
		// 调用service层进行登录业务逻辑处理
		System.out.println("添加的用户信息：" + adminB);
		if (file_adminimgs != null && file_adminimgs.length > 0) {
			System.out.println("上传文件名：" + file_adminimgs[0].getOriginalFilename());
		}
		// 调用service层的业务逻辑处理
//		List<AdminInfoBean> lstAdmins = loginS.queryLoginInfo(adminB);
//		// 根据登录信息查询结果进行跳转处理
//		if (lstAdmins != null && lstAdmins.size() > 0) {
//			// 登录成功
//			return "main";
//
//		} else {
//			// 登录失败
//			return "../../index";
//		}

		// 返回值是view的映射路径
		// 注意：返回的路径是剔除前缀和后缀之后的内容：
		// 例如返回视图页面的路径是：/WEB-INF/pages/index.jsp，则只需要返回 logined即可
		return "adminInfoManager/admininfoAddDetail";
	}

	@RequestMapping("/LoginAction")
	public String dologin(AdminInfoBean adminB) {
		// 调用service层进行登录业务逻辑处理
		System.out.println("用户名：" + adminB.getAdminname());
		System.out.println("密码：" + adminB.getAdminpsw());
		// 调用service层的业务逻辑处理
		List<AdminInfoBean> lstAdmins = loginS.queryLoginInfo(adminB);
		// 根据登录信息查询结果进行跳转处理
		if (lstAdmins != null && lstAdmins.size() > 0) {
			// 登录成功
			return "main";

		} else {
			// 登录失败
			return "../../index";
		}

		// 返回值是view的映射路径
		// 注意：返回的路径是剔除前缀和后缀之后的内容：
		// 例如返回视图页面的路径是：/WEB-INF/pages/index.jsp，则只需要返回 logined即可
	}

}
